[GA] Amazon ECR のリポジトリ作成テンプレートが GA になったので、プレビューからの変更点をまとめました
いわさです。
Amazon ECR には「リポジトリ作成テンプレート」という機能がプレビューで使えていたのをご存知でしょうか。
ECR には自動で作成されるリポジトリがいくつかあるのですが、その初期設定テンプレートとして機能させるためのものです。
2023 年 11 月にプレビューとしてこちらの機能が登場していましたが、先日こちらが GA となりました。
本日時点では日本語ドキュメントはまだプレビュー時点の仕様となっていまして、英語版と比較してみたところいくつか機能が追加されていることが確認出来ました。
- 英語ドキュメント
- 日本語ドキュメント
マネジメントコンソール上からそれらの変更点を実際に確認してみましたので紹介します。
テンプレートの適用対象が増えました
プレビュー時点ではテンプレートの適用対象はプルスルーキャッシュリポジトリのみでしたが、今回の GA に伴ってレプリケーション時の自動作成リポジトリも対象にすることが出来るようになっています。
テンプレート作成時のステップ1で次のように適用対象を選択することが出来るようになりました。
テンプレート一覧では適用対象の情報を確認することが出来るようになっています。
なお、この GA のタイミングでテンプレートにカスタムロールが使用出来るようになっています。
テンプレートでリポジトリタグまたは KMS を使用するときに使用するカスタム IAM ロールをドロップダウンメニューから選択出来ます。
IAM ロールの作成方法はこちら。ecr.amazonaws.com
を信頼すれば OK です。
テンプレートの変更が可能になりました
テンプレート作成の最後のステップで次のように表示されます。
プレビュー時の記事でも言及されていますが、パブリックプレビューの時には作成したテンプレートを変更することは出来ませんでした。
これが今回の GA に伴って変更出来るようになっています。ただしテンプレートに設定するプレフィックスの変更は行えませんので注意が必要です。
リストから変更したいテンプレートを選択してアクションメニューから「編集」を選択します。
テンプレート変更出来ますね。
適用対象やポリシーは変更出来るのですが、仕様どおりいプレフィックスの変更は出来ません。
マネジメントコンソール以外からも管理が可能になりました
プレビュー時点ではマネジメントコンソールでのみ作成が可能でした。
今回のアップデートで AWS CLI などの API 経由での作成もサポートされました。
v1.33.31 以降で次のコマンドが使えます。
- create-repository-creation-template — AWS CLI 1.33.31 Command Reference
- delete-repository-creation-template — AWS CLI 1.33.31 Command Reference
- describe-repository-creation-templates — AWS CLI 1.33.31 Command Reference
- update-repository-creation-template — AWS CLI 1.33.31 Command Reference
テンプレート作ってみましょう。
以下は最小限な感じで、ライフサイクルや KMS を設定するともうちょっと色々と設定が必要になります。
% cat hoge.json
{
"prefix": "fuga",
"encryptionConfiguration": {
"encryptionType": "AES256"
},
"imageTagMutability": "MUTABLE",
"repositoryPolicy": "{\n \"Version\" : \"2012-10-17\",\n \"Statement\" : [ {\n \"Sid\" : \"LambdaECRPullPolicy\",\n \"Effect\" : \"Allow\",\n \"Principal\" : {\n \"Service\" : \"lambda.amazonaws.com\"\n },\n \"Action\" : [ \"ecr:BatchGetImage\", \"ecr:GetDownloadUrlForLayer\" ]\n } ]\n}",
"appliedFor": [
"PULL_THROUGH_CACHE", "REPLICATION"
]
}
% aws-v1 ecr create-repository-creation-template --cli-input-json file://hoge.json
{
"registryId": "123456789012",
"repositoryCreationTemplate": {
"prefix": "fuga",
"encryptionConfiguration": {
"encryptionType": "AES256"
},
"imageTagMutability": "MUTABLE",
"repositoryPolicy": "{\n \"Version\" : \"2012-10-17\",\n \"Statement\" : [ {\n \"Sid\" : \"LambdaECRPullPolicy\",\n \"Effect\" : \"Allow\",\n \"Principal\" : {\n \"Service\" : \"lambda.amazonaws.com\"\n },\n \"Action\" : [ \"ecr:BatchGetImage\", \"ecr:GetDownloadUrlForLayer\" ]\n } ]\n}",
"appliedFor": [
"PULL_THROUGH_CACHE",
"REPLICATION"
],
"createdAt": 1722119657.548,
"updatedAt": 1722119657.548
}
}
AWS CLI から作成したテンプレートが確認できました。
さいごに
本日は Amazon ECR のリポジトリ作成テンプレートが GA になったので、プレビューからの変更点をまとめてみました。
プレビュー時のプルスルーキャッシュに加えてレプリケーションもサポートされるようになったので使っているかたはリポジトリ作成テンプレート確認してみてください。
プレビューでまだ利用を見送っていた方も、GA となったのでこれを機に運用環境での利用もご検討ください。